package com.haixiaoke.saas.repository.service;


import com.haixiaoke.saas.repository.dto.Node;
import com.haixiaoke.saas.repository.pojo.MaterialGroup;

import java.util.List;

/**
 * 素材组Service接口
 * 
 * @author panda
 * @date 2023-12-25
 */
public interface IMaterialGroupService {
    /**
     * 查询素材组
     * 
     * @param groupId 素材组主键
     * @return 素材组
     */
    MaterialGroup selectMaterialGroupByGroupId(Long groupId);

    /**
     * 查询素材组列表
     * 
     * @param materialGroup 素材组
     * @return 素材组集合
     */
    List<MaterialGroup> selectMaterialGroupList(MaterialGroup materialGroup);

    /**
     * 新增素材组
     * 
     * @param materialGroup 素材组
     * @return 结果
     */
    int insertMaterialGroup(MaterialGroup materialGroup);

    /**
     * 修改素材组
     * 
     * @param materialGroup 素材组
     * @return 结果
     */
    int updateMaterialGroup(MaterialGroup materialGroup);

    /**
     * 批量删除素材组
     * 
     * @param groupIds 需要删除的素材组主键集合
     * @return 结果
     */
     int deleteMaterialGroupByGroupIds(Long[] groupIds);

    /**
     * 删除素材组信息
     *
     * @param groupId 素材组主键
     * @return 结果
     */
     int deleteMaterialGroupByGroupId(Long groupId);

    /**
     * 查询该租户下的素材组树状结构
     * @param materialGroup 查询条件
     * @return  树状结构
     */
    List<Node> selectGroupTreeList(MaterialGroup materialGroup);

    /**
     * 软删除素材组
     * @param group
     * @return
     */
    int softDeleteMaterialGroupByGroupIds(MaterialGroup group);
}
